From 79e2c4bff39d071ef1a681f4ba505bddf61a5790 Mon Sep 17 00:00:00 2001 From: "emellor@ewan" Date: Thu, 22 Sep 2005 11:21:37 +0100 Subject: [PATCH] VMX guest memory calculation in python code is corrupted by changeset 6984, this patch fixes it. Also print vmx builder parameters before calling vmx builer, just like what's done before calling linux builder. With this patch, qemu dm using SDL can work, however qemu dm using VNC still has bug, we will fix it soon. Signed-off-by: Xin Li --- tools/python/xen/xend/image.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 0ef3457326..dfea908827 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -300,6 +300,18 @@ class VmxImageHandler(ImageHandler): store_evtchn = self.vm.store_channel.port2 else: store_evtchn = 0 + + log.debug("dom = %d", self.vm.getDomain()) + log.debug("image = %s", self.kernel) + log.debug("control_evtchn = %d", self.device_channel.port2) + log.debug("store_evtchn = %d", store_evtchn) + log.debug("memsize = %d", self.vm.getMemoryTarget() / 1024) + log.debug("memmap = %s", self.memmap_value) + log.debug("cmdline = %s", self.cmdline) + log.debug("ramdisk = %s", self.ramdisk) + log.debug("flags = %d", self.flags) + log.debug("vcpus = %d", self.vm.getVCpuCount()) + ret = xc.vmx_build(dom = self.vm.getDomain(), image = self.kernel, control_evtchn = self.device_channel.port2, @@ -402,7 +414,7 @@ class VmxImageHandler(ImageHandler): args = args + vnc args = args + ([ "-d", "%d" % self.vm.getDomain(), "-p", "%d" % self.device_channel.port1, - "-m", "%s" % self.vm.getMemoryTarget() / 1024 ]) + "-m", "%s" % (self.vm.getMemoryTarget() / 1024)]) args = args + self.dmargs env = dict(os.environ) env['DISPLAY'] = self.display @@ -437,7 +449,7 @@ class VmxImageHandler(ImageHandler): """@see ImageHandler.getDomainMemory""" # for ioreq_t and xenstore static_pages = 2 - return mem + self.getPageTableSize(mem * 1024) + 4 * static_pages + return mem + self.getPageTableSize(mem / 1024) + 4 * static_pages def getPageTableSize(self, mem_mb): """Return the size of memory needed for 1:1 page tables for physical -- 2.30.2